<?php

/**
 * importar actions.
 *
 * @package    rips
 * @subpackage importar
 * @author     Your name here
 * @version    SVN: $Id: actions.class.php 2692 2006-11-15 21:03:55Z fabien $
 */
class importarActions extends sfActions
{
  /**
   * Executes index action
   *
   */
  public function executeIndex()
  {
    
  }
  
  public function executeImportar()
  {
    $this->resultado = array();
    //Se mueven los archivos
    $prefijos = array('CT','AF','US','AD','AC','AP','AH','AU','AN','AM','AT');
    $validate = array();
    $nombres = array();
    //$nombreArchivo = "";
    foreach($prefijos  as $prefijo)
    {
      //echo $prefijo;
      if($this->getRequest()->getFileName('archivo_'.$prefijo))
      {
        if($prefijo != 'CT')
          $validate[] = $prefijo;
        $nombres[$prefijo] = strtoupper($this->getRequest()->getFileName('archivo_'.$prefijo));
        //$nombreArchivo = $this->getRequest()->getFileName('archivo_'.$prefijo);
        $this->getRequest()->moveFile('archivo_'.$prefijo, sfConfig::get('sf_upload_dir').'/'.$nombres[$prefijo]); 
      }
    }
    //echo sfConfig::get('sf_upload_dir').'/'.$nombres['CT'];
    if($this->getRequest()->getFileName('archivo_CT'))
    {
      CtControlPeer::doDeleteAll();
      $resultado = CtControlPeer::loadDataFromFile($nombres['CT'],false);
    }
    if(isset($resultado['errores']))
    {
      $this->resultado = $resultado;
      return sfView::SUCCESS; 
    } 
    // Se validan los archivos a importar
    $resultado = CtControlPeer::validateDataFiles($validate); 
    if(isset($resultado['errores']))
    {
      $this->resultado = $resultado;
      return sfView::SUCCESS;
    }
    
    /* ------------------------------------------------------------------ */
    //Se eliminan los registros anteriores
    if($this->getRequest()->getFileName('archivo_AD'))
      AdDescripcionServicioPeer::doDeleteAll();
    if($this->getRequest()->getFileName('archivo_AC'))
      AcConsultaPeer::doDeleteAll();
    if($this->getRequest()->getFileName('archivo_AP'))
      ApProcedimientoPeer::doDeleteAll();
    if($this->getRequest()->getFileName('archivo_AH'))
      AhHospitalizacionPeer::doDeleteAll();
    if($this->getRequest()->getFileName('archivo_AU'))
      AuUrgenciaPeer::doDeleteAll();
    if($this->getRequest()->getFileName('archivo_AN'))  
      AnRecienNacidoPeer::doDeleteAll();
    if($this->getRequest()->getFileName('archivo_AM'))
      AmMedicamentoPeer::doDeleteAll();
    if($this->getRequest()->getFileName('archivo_AT'))
      AtOtroServicioPeer::doDeleteAll();
    if($this->getRequest()->getFileName('archivo_AF'))
      AfTransaccionPeer::doDeleteAll();
    if($this->getRequest()->getFileName('archivo_US'))
      UsUsuarioPeer::doDeleteAll();   
   
    // Carga CIE10
    /*
    $resultado = EnfermedadPeer::loadDataFromFile(false);
    if(isset($resultado['errores']))
    {
      $this->errores['CIE10'] = $resultado['CIE10'];
      return sfView::ERROR; 
    }*/
    
    // Carga CUPS
    
    $result = ProcedimientoPeer::loadDataFromFile(true);
    if(isset($resultado['errores']['CUPS']))
    {
      $resultado['errores']['CUPS'] = array_merge($resultado['errores']['CUPS'],$result['errores']['CUPS']);
      //return sfView::ERROR; 
    }
       
    /* ------ Se importa el archivo de transacciones - AFxxxxxx.TXT ---- */
    if($this->getRequest()->getFileName('archivo_AF'))
    {
      $result = AfTransaccionPeer::loadDataFromFile();
      $resultado['informacion']['AF']['registros-grabados']=$result['informacion']['AF']['registros-grabados'];
      if(isset($result['errores']['AF']))
        $resultado['errores']['AF'] = array_merge($resultado['errores']['AF'],$result['errores']['AF']);
    }
    
    /* ------ Se importa el archivo de usuarios - USxxxxxx.TXT ---- */
    if($this->getRequest()->getFileName('archivo_US'))
    {
      $result = UsUsuarioPeer::loadDataFromFile();
      $resultado['informacion']['US']['registros-grabados']=$result['informacion']['US']['registros-grabados'];
      if(isset($result['errores']['US']))
        $resultado['errores']['US'] = array_merge($resultado['errores']['US'],$result['errores']['US']);
    }
    /* ------ Se importa el archivo de descripciones agrupadas de servicios - ADxxxxxx.TXT ---- */
    if($this->getRequest()->getFileName('archivo_AD'))
    {
      $result = AdDescripcionServicioPeer::loadDataFromFile();
      $resultado['informacion']['AD']['registros-grabados']=$result['informacion']['AD']['registros-grabados'];
      if(isset($result['errores']['AD']))
        $resultado['errores']['AD'] = array_merge($resultado['errores']['AD'],$result['errores']['AD']);
    }
    /* ------ Se importa el archivo de consultas - ACxxxxxx.TXT ---- */
    if($this->getRequest()->getFileName('archivo_AC'))
    {
      $result = AcConsultaPeer::loadDataFromFile();
      $resultado['informacion']['AC']['registros-grabados']=$result['informacion']['AC']['registros-grabados'];
      if(isset($result['errores']['AC']))
        $resultado['errores']['AC'] = array_merge($resultado['errores']['AC'],$result['errores']['AC']);
    }
    /* ------ Se importa el archivo de procedimientos - APxxxxxx.TXT ---- */
    if($this->getRequest()->getFileName('archivo_AP'))
    {
      $result = ApProcedimientoPeer::loadDataFromFile();
      $resultado['informacion']['AP']['registros-grabados']=$result['informacion']['AP']['registros-grabados'];
      if(isset($result['errores']['AP']))
        $resultado['errores']['AP'] = array_merge($resultado['errores']['AP'],$result['errores']['AP']);
    }
    /* ------ Se importa el archivo de hospitalizaciones - AHxxxxxx.TXT ---- */
    if($this->getRequest()->getFileName('archivo_AH'))
    {
      $result = AhHospitalizacionPeer::loadDataFromFile();
      $resultado['informacion']['AH']['registros-grabados']=$result['informacion']['AH']['registros-grabados'];
      if(isset($result['errores']['AH']))
        $resultado['errores']['AH'] = array_merge($resultado['errores']['AH'],$result['errores']['AH']);
    }
       
    /* ------ Se importa el archivo de urgencias - AUxxxxxx.TXT ---- */
    if($this->getRequest()->getFileName('archivo_AU'))
    {
      $result = AuUrgenciaPeer::loadDataFromFile();
      $resultado['informacion']['AU']['registros-grabados']=$result['informacion']['AU']['registros-grabados'];
      if(isset($result['errores']['AU']))
        $resultado['errores']['AU'] = array_merge($resultado['errores']['AU'],$result['errores']['AU']);
    }
    /* ------ Se importa el archivo de recien nacidos - ANxxxxxx.TXT ---- */
    if($this->getRequest()->getFileName('archivo_AN'))
    {
      $result = AnRecienNacidoPeer::loadDataFromFile();
      $resultado['informacion']['AN']['registros-grabados']=$result['informacion']['AN']['registros-grabados'];
      if(isset($result['errores']['AN']))
        $resultado['errores']['AN'] = array_merge($resultado['errores']['AN'],$result['errores']['AN']);
    }     
    /* ------ Se importa el archivo de recien nacidos - AMxxxxxx.TXT ---- */
    if($this->getRequest()->getFileName('archivo_AM'))
    {
      $result = AmMedicamentoPeer::loadDataFromFile();
      $resultado['informacion']['AM']['registros-grabados']=$result['informacion']['AM']['registros-grabados'];
      if(isset($result['errores']['AM']))
        $resultado['errores']['AM'] = array_merge($resultado['errores']['AM'],$result['errores']['AM']);
    }
    /* ------ Se importa el archivo de recien nacidos - ATxxxxxx.TXT ---- */
    if($this->getRequest()->getFileName('archivo_AT'))
    {
      $result = AtOtroServicioPeer::loadDataFromFile();
      $resultado['informacion']['AT']['registros-grabados']=$result['informacion']['AT']['registros-grabados'];
      if(isset($result['errores']['AT']))
        $resultado['errores']['AT'] = array_merge($resultado['errores']['AT'],$result['errores']['AT']);
    }
    $this->resultado = $resultado;
    
    return sfView::SUCCESS; 
  }
  
  public function handleErrorImportar()
  {
    $this->setTemplate('index');
    return sfView::SUCCESS;
  }
}
